package models;

import java.io.Serializable;
import javax.persistence.*;

import play.db.jpa.GenericModel;
import play.db.jpa.Model;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;


/**
 * The persistent class for the compra database table.
 * 
 * int cantidad = 5;
 * Date fecha = new Date();
 * Persona personaQueCompra = Persona.findById(1);
 * Publicacion publicacion = Publicacion.findById(1);
 * 
 * Compra compra = new Compra();
 * 
 * compra.setNucantidad(cantidad);
 * compra.setFecha(fecha);
 * compra.setPErsona(persona);
 * ...
 * compra.save();
 * 
 * Compra.find("persona = ? AND publicacion = ? ",persona,publicacion).first(); 
 * 
 */
@Entity
public class Compra extends GenericModel {
	

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="CO_COMPRA",nullable = false)
	private int coCompra;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="DE_FECHA_COMPRA",nullable = false)
	private Date deFechaCompra;

	@Column(name="NU_CANTIDAD",nullable = false)
	private int nuCantidad;

	@Column(name="ST_COMPRA",nullable = false)
	private String stCompra;

	//bi-directional many-to-one association to Comentario
	@OneToMany(mappedBy="compra")
	private Set<Comentario> comentarios = new HashSet<Comentario>();

	//bi-directional many-to-one association to Persona
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="CO_PERSONA",nullable =false)
	private Persona persona;

	//bi-directional many-to-one association to Publicacion
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="CO_PUBLICACION",nullable = false)
	private Publicacion publicacion;

    public Compra() {
    }

	public int getCoCompra() {
		return this.coCompra;
	}

	public void setCoCompra(int coCompra) {
		this.coCompra = coCompra;
	}

	public Date getDeFechaCompra() {
		return this.deFechaCompra;
	}

	public void setDeFechaCompra(Date deFechaCompra) {
		this.deFechaCompra = deFechaCompra;
	}

	public int getNuCantidad() {
		return this.nuCantidad;
	}

	public void setNuCantidad(int nuCantidad) {
		this.nuCantidad = nuCantidad;
	}

	public String getStCompra() {
		return this.stCompra;
	}

	public void setStCompra(String stCompra) {
		this.stCompra = stCompra;
	}

	public Set<Comentario> getComentarios() {
		return this.comentarios;
	}

	public void setComentarios(Set<Comentario> comentarios) {
		this.comentarios = comentarios;
	}
	
	public Persona getPersona() {
		return this.persona;
	}

	public void setPersona(Persona persona) {
		this.persona = persona;
	}
	
	public Publicacion getPublicacion() {
		return this.publicacion;
	}

	public void setPublicacion(Publicacion publicacion) {
		this.publicacion = publicacion;
	}
	
}